package org.r13notes.notes;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 
 * @author Lukasz Raczko
 *
 * Class used to store notes when application is running. Also it gives possibility to sort notes with difrrent 
 * params. 
 * 
 */

public class NotesContainer {

	public NotesContainer(List<Note> notesList){
		this.notesList = notesList;
	}
	
	/**
	 * @return List of notes in which order is sorted by date (newest first).
	 * Date is the date when note was added or modified (if user checked to modify the date, after
	 * modifying note).
	 */
	public List<Note> getNotesSortedByDate(){
		// TODO sort by date
		return notesList;
	}
	
	/** 
	 * @return List of notes in which order is sorted by priority (notes with highest priority first)
	 */
	public List<Note> getNotesSortedByPriority(){
		// TODO sort by priority
		return notesList;
	}
	
	/**
	 * @return List of notes in which order is default (user made)
	 */
	public List<Note> getNotes(){
		return notesList;
	}
	
	/**
	 * @param from - date from which filter notes
	 * @param to - date to which filter notes
	 * @return list containing only notes from params time.
	 */
	public List<Note> getFilteredByDates(Date from, Date to){
		// TODO
		return notesList;
	}
	
	/**	
	 * @param minPriority - min priority of note (min = 0)
	 * @param maxPriority - max priority of note (max = 100)
	 * @return list containg only notes from given interval
	 */
	public List<Note> getFilteredByPriority(int minPriority, int maxPriority){
		// TODO
		return notesList;
	}
	
	private List<Note> notesList;
}
